home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 12, No. 09 (1991-09)(MindCraft Publishing)(Side A)[no boot].zip / Nibble Volume 12, No. 09 (1991-09)(MindCraft Publishing)(Side A)[no boot].po / NIBBLE.1991:SEP.VOL12.NO09 / PS.CONVERT.BAS < prev    next >
BASIC Source File  |  1996-12-24  |  7KB  |  124 lines

  1. 10  REM 
  2. 12  REM  PRINT SHOP CONVERTER 
  3. 14  REM  BY BY CLEMESHA
  4. 16  REM  COPYRIGHT (C) 1991
  5. 18  REM  MINDCRAFT PUBL. CORP.
  6. 20  REM  LINCOLN, MA 01773
  7. 30  REM 
  8. 40  LOMEM: 24576: DIM A$(61),B$(61),AA$(61)
  9. 50 D$ =  CHR$(4):G$ =  CHR$(7):H$ =  CHR$(8):J$ =  CHR$(10):K$ =  CHR$(11):M$ =  CHR$(13):U$ =  CHR$(21):ESC$ =  CHR$(27):SD$ = ",S6,D1":DD$ = ",S6,D2":DL$ = "NO ":DC$ = DL$
  10. 60  REM  CTRLD, BELL, BACKSPACE, DOWN, UP, RETURN, RIGHT, ESCAPE, SOURCE DRIVE, DESTINATION DRIVE, DELETE AND PAUSE FLAGS
  11. 70  FOR N = 1 TO 18:H18$ = H18$ +H$: NEXT N: REM  18 BACKSPACES    
  12. 80  PRINT D$"BLOAD PS.CONVERT.0":CNVRT = 7168: ONERR  GOTO 1150: REM  LOAD ML PROGRAM
  13. 90  FOR N = 1 TO 8: READ MENU$(N): NEXT N:N = 1: GOSUB 310: REM  READ MENU ITEMS
  14. 100  REM  PRINT MENU SCREEN
  15. 110  PRINT D$"PR#3"M$: HOME :LM = 35:WI = 2: GOSUB 1080: PRINT 
  16. 120  FOR N1 = 1 TO 23: PRINT "|": NEXT :LM = 0:WI = 34: GOSUB 1080: VTAB 1: PRINT "        PS.CONVERT"M$"   Print Shop Clip Converter"M$M$"Copyright 1991, MindCraft Publ.": FOR N1 = 1 TO 34: PRINT "_";: NEXT 
  17. 130  TEXT : GOSUB 1070: GOSUB 330: VTAB 6: FOR N1 = 1 TO 8: HTAB 4: PRINT MENU$(N1) +M$: NEXT N1: GOTO 190
  18. 140  REM  MENU ROUTINE
  19. 150 M =  VAL(KE$): IF M >0  AND M <9  THEN N = M: GOTO 190
  20. 160  IF KE$ = K$  OR KE$ = U$  THEN N = N -1: IF N <1  THEN N = 8
  21. 170  IF KE$ = J$  THEN N = N +1: IF N >8  THEN N = 1
  22. 180  IF KE$ = M$  THEN  ON N GOTO 210,220,350,360,780,970,990,1100
  23. 190  GOSUB 330: GOSUB 1070: HTAB 4: VTAB (4 +2 *N): INVERSE : PRINT MENU$(N);: NORMAL : GET KE$: HTAB 4: PRINT MENU$(N);: GOTO 150
  24. 200  REM  GET SLOT AND DRIVE NUMBERS
  25. 210  GOSUB 230:SD$ = TEMP$: GOSUB 310: GOTO 190: REM  SOURCE DRIVE
  26. 220  GOSUB 230:DD$ = TEMP$: GOSUB 310: GOTO 190: REM  DESTINATION DRIVE
  27. 230  GOSUB 330: PRINT " SLOT #: ";: GET KE$:: IF KE$ <"8"  AND KE$ >"0"  THEN TEMP$ = ",S" +KE$: GOTO 260
  28. 240  IF KE$ = ESC$  THEN 290
  29. 250  PRINT G$: GOTO 230
  30. 260  GOSUB 330: PRINT " DRIVE 1/2 ? ";: GET KE$: IF KE$ <"3"  AND KE$ >"0"  THEN TEMP$ = TEMP$ +",D" +KE$: GOTO 290: REM  SET SLOT AND DRIVE
  31. 270  IF KE$ = ESC$  THEN 290
  32. 280  PRINT G$: GOTO 260
  33. 290  GOSUB 330: RETURN 
  34. 300  REM  APPEND SLOT AND DRIVE NUMBERS TO MENU ITEMS
  35. 310 MENU$(1) =  LEFT$(MENU$(1),16) +SD$:MENU$(2) =  LEFT$(MENU$(2),21) +DD$: RETURN 
  36. 320  REM  CLEAR INPUT LINE
  37. 330  VTAB 21: PRINT : PRINT  SPC( 34): VTAB 21: PRINT : RETURN 
  38. 340  REM  FILE MENU/CATALONG ROUTINES
  39. 350  PRINT D$"PREFIX"DD$: GOTO 370: REM  SET DESTINATION PREFIX
  40. 360  PRINT D$"PREFIX"SD$: REM  SET SOURCE PREFIX
  41. 370  GOSUB 1050:WI = 79: GOSUB 1080: HOME : REM  CLEAR SCREEN
  42. 380  PRINT M$"PLEASE WAIT":ER = 0:NF = 1
  43. 390  PRINT D$"PREFIX": INPUT P$
  44. 400  PRINT D$"OPEN"P$",TDIR": PRINT D$"READ"P$: REM  OPEN DIRECTORY
  45. 410 BLOCKS =  PEEK(48825) +256 * PEEK(48826) - PEEK(48828) -256 * PEEK(48829): INPUT C$,C$,C$: IF N = 4  THEN 470:: REM  FREE SPACE
  46. 430  REM  READ DIRECTORY OF DESTINATION DISK
  47. 440  INPUT AA$(NF): IF AA$(NF) = ""  THEN 510
  48. 450 AA$(NF) =  MID$ (AA$(NF),2,16):NF = NF +1: GOTO 440
  49. 460  REM  READ DIRECTORY OF SOURCE DISK
  50. 470 B$(NF) = "  ": INPUT A$(NF): IF A$(NF) = ""  THEN 510
  51. 480  IF  MID$ (A$(NF),18,3) < >"BIN"  THEN 470
  52. 490 A$(NF) =  MID$ (A$(NF),2,16):NF = NF +1: GOTO 470
  53. 510  PRINT D$"CLOSE": VTAB 1: HTAB 1
  54. 520  IF N = 3  THEN NN = NF -1: PRINT M$"Destination Volume Catalog": GOTO 550
  55. 530 NM = NF -1: PRINT M$"Use Arrow Keys to Select/Deselect Files"
  56. 540  REM  PRINT FILE LIST
  57. 550  PRINT M$"Volume: "P$M$: PRINT BLOCKS;" blocks free"
  58. 560  FOR J = 1 TO 79: PRINT "_";: NEXT : IF NM *(N = 4) +NN *(N = 3) = 0  THEN  PRINT M$"No Files ";: GET KE$: GOTO 100
  59. 570  FOR NF = 1 TO NM *(N = 4) +NN *(N = 3)
  60. 580  GOSUB 720: NEXT 
  61. 590  IF N = 3  THEN  HTAB 79: GET KE$: GOTO 100: REM  RETURN TO MAIN MENU
  62. 600  REM  SELECT/DESELECT FILES
  63. 610 NF = 1
  64. 620  INVERSE : GOSUB 720: GET KE$
  65. 630  IF KE$ = ESC$  OR KE$ = M$  THEN  NORMAL : GOTO 100
  66. 640  IF KE$ = U$  THEN B$(NF) = "=>"
  67. 650  IF KE$ = H$  THEN B$(NF) = "  "
  68. 660  IF KE$ = "A"  OR KE$ = "a"  THEN  NORMAL : FOR NF = 1 TO NM:B$(NF) = "=>": GOSUB 720: NEXT NF: GOTO 610: REM  SELECT ALL
  69. 670  IF KE$ = "N"  OR KE$ = "n"  THEN  NORMAL : FOR NF = 1 TO NM:B$(NF) = "  ": GOSUB 720: NEXT NF: GOTO 610: REM  SELECT NONE
  70. 680  NORMAL : GOSUB 720:NF = NF +(KE$ = J$) -(KE$ = K$)
  71. 690  IF NF = 0  THEN NF = NM
  72. 700  IF NF >NM  THEN NF = 1
  73. 710  GOTO 620
  74. 720 Q = (NF >13) +(NF >26) +(NF >39)
  75. 730 ROW = 8 +NF -13 *Q
  76. 740 COLUMN = 2 +19 *Q
  77. 750  VTAB ROW: HTAB COLUMN: IF N = 4  THEN  PRINT B$(NF) +A$(NF);: RETURN 
  78. 760  PRINT "  " +AA$(NF): RETURN 
  79. 770  REM  CONVERT FILES
  80. 780 LM = 41:WI = 38: GOSUB 1080: HOME : FOR NF = 1 TO NM: IF B$(NF) = "=>"  THEN 800
  81. 790  NEXT : PRINT "No Files Selected  "G$;: GET KE$: GOTO 190
  82. 800  PRINT "Clip Conversions"M$:TM = 2:BM = 23: GOSUB 1060
  83. 810  FOR NF = 1 TO NM: IF B$(NF) < >"=>"  THEN 910
  84. 820  PRINT A$(NF);:L = 1: IF  PEEK( -16384) = 155  THEN 920: REM  ESCAPE TO MENU
  85. 830  IF  MID$ (A$(NF),L,1) < >" "  THEN L = L +1: GOTO 830: REM  REMOVE SPACES 
  86. 840 SF$ =  LEFT$(A$(NF),L -1):DF$ =  LEFT$(SF$,10) +".CLIP": REM  APPEND ".CLIP" TO FILE NAME
  87. 850  IF DC$ = "YES"  THEN MSG$ = "Insert Source Disc": GOSUB 940
  88. 860  POKE  -16368,0: PRINT D$"BLOAD"SF$",A$4400,L576"SD$: CALL CNVRT: IF  PEEK( -16384) = 155  THEN 920
  89. 870  IF DC$ = "YES"  THEN MSG$ = "Insert Destin Disc": GOSUB 940
  90. 880  PRINT "=> "DF$
  91. 890  PRINT D$"BSAVE"DF$",A$4000,L842"DD$:B$(NF) = "  ": REM  SAVE CLIP AND MARK AS SAVED
  92. 900  IF DL$ = "YES"  THEN  PRINT D$"DELETE"SF$SD$
  93. 910  NEXT NF
  94. 920  GOSUB 1050: GOSUB 1070: GOTO 190
  95. 930  REM  ERASE MESSAGE AND RESTORE CURSOR POSITION
  96. 940  INVERSE : PRINT MSG$;: NORMAL : GET KE$: PRINT H18$; SPC( 18);H18$;: IF KE$ = ESC$  THEN  POP : GOTO 920
  97. 950  RETURN 
  98. 960  REM  TOGGLE DELETE FLAG
  99. 970 X$ = DL$: GOSUB 1000:DL$ = X$: GOTO 190
  100. 980  REM  TOGGLE WAIT FOR DISC CHANGE FLAG
  101. 990 X$ = DC$: GOSUB 1000:DC$ = X$: GOTO 190
  102. 1000  IF X$ = "NO "  THEN X$ = "YES": GOTO 1020
  103. 1010 X$ = "NO "
  104. 1020 MENU$(N) =  LEFT$(MENU$(N),26) +X$: RETURN : REM  APPEND YES/NO TO MENU ITEM
  105. 1030  REM  SET TEXT WINDOW
  106. 1040 TM = 22:BM = 23: GOTO 1060
  107. 1050 TM = 0:BM = 23
  108. 1060  POKE 34,TM: POKE 35,BM: RETURN : REM  SET VERTICAL
  109. 1070 LM = 0:WI = 35
  110. 1080  POKE 32,LM: POKE 33,WI: RETURN : REM  SET HORIZONTAL
  111. 1090  REM  QUIT
  112. 1100  GOSUB 330: PRINT "Sure you want to quit ? ";: GET KE$: IF KE$ = "Y"  OR KE$ = "y"  THEN WI = 79: GOSUB 1080: HOME : END 
  113. 1110  IF KE$ < >"N"  AND KE$ < >"n"  THEN 1100
  114. 1120  GOSUB 330: GOTO 190
  115. 1130  DATA   "1: SOURCE DRIVE:","2: DESTINATION DRIVE:","3: CATALOG DESTINATION VOLUME","4: SELECT FILES","5: CONVERT FILES: ","6: DELETE ORIGINAL FILES: NO","7: PAUSE FOR DISC CHANGE: NO","8: QUIT TO BASIC"
  116. 1140  REM  ERROR HANDLING ROUTINE
  117. 1150 ER =  PEEK(222): IF ER = 5  THEN 510
  118. 1160 MSG$ = "   *  ANY KEY TO CONTINUE ": IF ER = 3  THEN MSG$ = "   *  NO DEVICE CONNECTED "
  119. 1170  IF ER = 4  THEN MSG$ = "   *  WRITE PROTECTED     "
  120. 1180  IF ER = 8  THEN MSG$ = "   *  I/O ERROR           "
  121. 1190  IF ER = 9  THEN MSG$ = "   *  DISK FULL           "
  122. 1200  IF ER = 10  THEN MSG$ = "   *  FILE LOCKED         "
  123. 1210  IF ER = 17  THEN MSG$ = "   *  DIRECTORY FULL      "
  124. 1220  GOSUB 1040: GOSUB 1070: GOSUB 330: VTAB 22: HTAB 1: PRINT G$MSG$;: GET KE$: GOSUB 330: GOTO 110